{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f3e91e4c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 购物车程序项目：\n",
    "\n",
    "# 要求：1、运行程序后，让(用户输入)->input 支付宝余额，然后(打印)->格式化打印（占位符，format）我们的商品（列表）给用户。\n",
    "\n",
    "# 　　   2、让用户输入商品编号进行商品的购买。\n",
    "\n",
    "# 　　   3、用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。\n",
    "\n",
    "# 　　   4、用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6b3f5224",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入您的余额：300\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：2\n",
      "【9.5】已经加入您的购物车，您的【余额】还有：290.5元\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：2\n",
      "【9.5】已经加入您的购物车，您的【余额】还有：281.0元\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：2\n",
      "【9.5】已经加入您的购物车，您的【余额】还有：271.5元\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：2\n",
      "【9.5】已经加入您的购物车，您的【余额】还有：262.0元\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：2\n",
      "【9.5】已经加入您的购物车，您的【余额】还有：252.5元\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：\n",
      "请输入正确的[商品编号]或者按照输入提示输入\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：222222\n",
      "您输入的商品不存在，请检查再次输入~\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n",
      "请输入正确的商品编号进行购买：2\n",
      "【9.5】已经加入您的购物车，您的【余额】还有：243.0元\n",
      "------商品信息表--------\n",
      "商品编号：0，商品名称：珍珠奶茶，商品价格：7\n",
      "商品编号：1，商品名称：大杯珍珠奶茶，商品价格：8.5\n",
      "商品编号：2，商品名称：加大杯珍珠奶茶，商品价格：9.5\n",
      "商品编号：3，商品名称：桶装珍珠奶茶，商品价格：20\n"
     ]
    }
   ],
   "source": [
    "goods_list = [\n",
    "#     [商品名称，商品价格]\n",
    "    ['珍珠奶茶',7],\n",
    "    ['大杯珍珠奶茶',8.5],\n",
    "    ['加大杯珍珠奶茶',9.5],\n",
    "    ['桶装珍珠奶茶',20],\n",
    "    ]\n",
    "# 写到某一步，发现前面需要内容。可以优化增加\n",
    "user_shopping_cart = []# 用户列表初始为空后用append增加\n",
    "# 用户输入：input\n",
    "alipay = int(input('请输入您的余额：'))\n",
    "while True:# 将实现 过程的循环\n",
    "    print(\"------商品信息表--------\")\n",
    "    # 打印商品信息，打印商品的次数是由商品列表的长度决定的（len(goods_list)）\n",
    "    for i in range(len(goods_list)):\n",
    "        # 给格式化的样式（先给）\n",
    "        # 样式（不懂代码的人可以完成的工作）\n",
    "        #   :\"商品编号：xx，商品名称：xx，商品价格：xx\"\n",
    "        print(\"商品编号：%s，商品名称：%s，商品价格：%s\"%(i,goods_list[i][0],goods_list[i][1]))\n",
    "    # 2、让用户输入商品编号进行商品购买\n",
    "\n",
    "    # 用户输入商品编号\n",
    "    choice = input(\"请输入正确的商品编号进行购买：\")\n",
    "    if choice.isdigit():  # isdigit判断字符串是否是数值\n",
    "        choice = int(choice)# 如果是数值，把它变成真正的int\n",
    "\n",
    "    # 判断商品编号是否在我们的范围内\n",
    "        if choice >len(goods_list):\n",
    "            print(\"您输入的商品不存在，请检查再次输入~\")\n",
    "        else:\n",
    "        # 对比商品编号，找到对应商品，goods_list[choice][1]\n",
    "        # 1.检查用余额vs商品价格关系\n",
    "             if alipay > goods_list[choice][1]:\n",
    "\n",
    "                # 买得起1.扣钱2.把商品加入购物车\n",
    "                user_shoppinng_cart.append(goods_list[choice])\n",
    "                alipay = alipay - goods_list[choice][1]\n",
    "                print(\"【%s】已经加入您的购物车，您的【余额】还有：%s元\"%(goods_list[choice][1],alipay))\n",
    "             else: \n",
    "                print(\"您的余额不足，请更换支付方式\")\n",
    "    elif choice == \"q\":\n",
    "        #如果输入q则说明用户要退出购买，我们将打印用户已购买的商品列表及用户余额\n",
    "        print(\"您的购物车：\",user_shopping_cart)\n",
    "        print(\"您的余额:%元\"%(alipay))\n",
    "        break\n",
    "    else:\n",
    "        print(\"请输入正确的[商品编号]或者按照输入提示输入\")\n",
    "        \n",
    "\n",
    "\n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "df974bb5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
